﻿using System;

namespace Entities
{
    [Serializable]
    public class tblCustomer
    {
        private string first_name;
        private string last_name;
        private string email;
        private string address;
        private string city;
        private string phone;
        private int customer_group_id;
        private DateTime date_added;
        private bool status;

        public tblCustomer() {}

        public tblCustomer(string first_name, string last_name, string email, string address, string city, string phone, int customer_group_id, DateTime date_added, bool status)
        {
            this.first_name = first_name;
            this.last_name = last_name;
            this.email = email;
            this.address = address;
            this.city = city;
            this.phone = phone;
            this.customer_group_id = customer_group_id;
            this.date_added = date_added;
            this.status = status;
        }

        public string firstName
        {
            get { return this.first_name; }
            set
            {
                if (value == null)
                    throw new Exception("Tên khách hàng không được để trống!");
                this.first_name = value;
            }
        }

        public string lastName
        {
            get { return this.last_name; }
            set
            {
                if (value == null)
                    throw new Exception("Tên đệm khách hàng không được để trống!");
                this.last_name = value;
            }
        }

        public string Email
        {
            get { return this.email; }
            set
            {
                if (value == null)
                    throw new Exception("Email không được để trống!");
                this.email = value;
            }
        }

        public string Address
        {
            get { return this.address; }
            set
            {
                if (value == null)
                    throw new Exception("Địa chỉ khách hàng không được để trống!");
                this.Address = value;
            }
        }

        public string City
        {
            get { return this.city; }
            set
            {
                if (value == null)
                    throw new Exception("Thành phố không được để trống!");
                this.city = value;
            }
        }

        public string Phone
        {
            get { return this.phone; }
            set
            {
                if (value == null)
                    throw new Exception("Điện thoại không được để trống!");
                this.phone = value;
            }
        }

        public int customerGroupID
        {
            get { return this.customer_group_id; }
            set
            {
                if (value == null)
                    throw new Exception("Nhóm khách hàng không được để trống!");
                this.customer_group_id = value;
            }
        }

        public DateTime DateAdded
        {
            get { return this.date_added; }
            set
            {
                if (value == null)
                    throw new Exception("Ngày đăng kư không được để trống!");
                this.date_added = value;
            }
        }

        public bool Status
        {
            get { return this.status; }
            set
            {
                if (value == null)
                    throw new Exception("Trạng thái tài khoản không được để trống!");
                this.status = value;
            }
        }

        public override string ToString()
        {
	        return this.first_name+"; "+this.last_name+"; "+this.email+"; "+this.address+"; "+this.city+"; "+this.phone+"; "+this.customer_group_id+"; "+this.date_added+"; "+this.status+"; ";
	    }
	    public override bool Equals(Object obj)
	    {
            tblCustomer me = (tblCustomer)obj;
	        bool ret=this.firstName.Equals(me.firstName);
	        return ret;
	    }
	    public override int GetHashCode()
	    {
	        return this.firstName.GetHashCode();
	    }

    }
}
